1. Field of the Invention
The present invention relates to a transport stream, more particularly to an information monitoring and updating method and system for a transport stream.
2. Description of Related Art
The development of digital TV industry brings along tremendous demands to multimedia home platform (MHP). Accordingly, various digital TV standard organizations have established their own middleware standards so that digital TV receivers conforming to these standards can perform diverse multimedia interactions, information applications, and services, such as electric program guide, real-time stock information, and TV shopping etc.
However, different countries or regions have different middleware standards for interactive digital TV, and which brings difficulties in program conversion between different middleware standards. Since the middleware standard established by Digital Video Broadcasting (DVB), the “Multimedia Home Platform (MHP)”, has maturer technique compared to other middleware standards, the DVB has established a global digital TV middleware standard, the “Globally Executable MHP (GEM)” based on the MHP standard. However, the GEM standard is not a complete, independent standard; instead, it is a referenced framework for standards established based on MHP. Therefore, most new-generation interactive digital TV standards are established based on GEM, such as Open-Cable Application Platform (OCAP), Advance Common Application Platform (ACAP), and Association of Radio Industries and Businesses Application Engine (ARIB-AE).
To execute MHP services, service information (SI) and the data for executing service applications, namely, the digital storage media, command, and control (DSM-CC) data, are carried in a MPEG-2 transport stream. The DSM-CC comprises MHP application programs and data thereof, and these application programs and data are transmitted as object carousels. The information transmitted, for example, traffic information, stock information, etc, is updated constantly along with the service applications; therefore, to obtain real-time information and to execute the service applications instantly, a receiver has to monitor the information contained in a MPEG-2 transport stream constantly and updates the information when necessary.
As shown in FIG. 1, a MPEG-2 transport stream contains data packets of videos and audios of different programs, and a data packet can be located according to the packet identifier (PID) thereof. For example, the data packet with PID=82 corresponds to the audio sample 2 played by program 3. Program specific information (PSI) tables are defined for obtaining the information of a particular program in the MPEG-2 transport stream, and the PSI tables are respectively program association table (PAT) 101, program map tables (PMT) 102a and 102b, conditional access table, (CAT) 103, and network information table (NIT) 104 etc.
The PAT 101 (PID=0) records the PIDs of the PMTs of various programs in the MPEG-2 transport stream, for example, the PMT of program 3 is in the packet with PID=33. The PIDs of the videos and audios of various programs can be obtained from the PMTs 102a and 102b, for example, the PMT 102b records that the video sample 1 played by program 3 is in the packet with PID=19. The PID of the NIT 104 may also be obtained from the PAT 101 for identifying different transport streams.
According to the standard of “ISO-13818-1 Information technology-Generic Coding of Moving Picture and Associated Audio Information System”, a section is defined as a syntactic structure. According to this standard, a PSI table can be divided into one or multiple sections, and each section can be placed into a plurality of packets of a MPEG-2 transport stream, wherein the PSI table contains information separated into sections, which includes SI and the data for executing service applications (DSMCC data). Required data can be obtained by only filtering the sections with section filters.
The information contained in the syntactic structure of a section includes table identification, table identification extension, version number, section number, and last section number etc. The table identification is used for identifying specific tables, and which is also used for identifying specific sub-tables along with the table identification extension. The section number and last section number respectively denote the number of a section and the number of sections for composing a sub-table. The version number is between 0 and 31, and which is increased every time when the version is updated, (it is started all over from 0 again when the version number exceeds 31). Accordingly, information monitoring of a MPEG-2 transport stream can be carried out by checking the version numbers of all the sections in a table (or a sub-table). When all the sections of the table (or the sub-table) have the latest version number, information updating can be performed to the MPEG-2 transport stream.
Generally speaking, in an information monitoring and updating method of a MPEG-2 transport stream, sections of a PSI table are obtained through a application program interface of a section filter defined by digital audio visual council (DAVIC), wherein there are three methods for filtering the sections. One of the methods is to filter only one section by using a simple-section filter. The second one is to provide a fixed memory position for storing sections by using a ring-section filter, wherein the maximum section numbers to be stored is preset so that multiple sections can be continuous filtered out in order. The last method is to obtain a complete table by using a table-section filter.
FIG. 2 is a block diagram illustrating a conventional information monitoring and updating method for a transport stream. Referring to FIG. 2, first, in step S201, whether or not an access to a table-section filter has been obtained is determined. When a user (the application program executing the table-section filter) has obtained the access to the table-section filter, a filtering parameter of the table-section filter, for example, table identification, table identification extension, version number, etc, is set in step S202 so as to filter out the sections of the particular table (or sub-table) in step S203. Next, in step S204, a version number contained in a captured section is compared to a version number previously stored in a memory in order to determine whether or not the version number of the captured section has been changed. If the version number of the captured section has been changed, in step S205, an event is issued to notify the user that a section of newer version is available, so that the user can determine whether to update the version of the information.
When the user determines to update the information to the latest version, a filtering parameter of the table-section filter is set to the newer version number in step S202, and the sections of the particular table are re-filtered in step S203 in order to obtain the sections of the latest version. Next, in step S204, the version numbers of the re-filtered sections are the same as the newer version number, so that step S206 is executed. In step S206, whether or not all the sections in the particular table are of the latest version is determined; if not all the section are of the latest version, step S203 is executed again to capture next section, otherwise, if all the sections are of the latest version, the information is updated and stored in step S207.
In the information monitoring method described above, the step of determining whether the version number of a section has been changed or not (step S204) can be performed by using only the version number contained in the header of the section, wherein the section header is usually an 8-byte space. Thus, as illustrated in FIG. 2, since the sections of the particular table are filtered out by the table-section filter and information monitoring is then carried out with the version numbers of these sections, information monitoring cannot be carried out effectively and memory space is also wasted. In addition, while performing information monitoring, the sections filtered by the table-section filter are discarded after they are used for determining whether the versions of the sections are of the latest version, and when the user decides to update the information, these sections of the particular table have to be re-filtered, which causes unnecessary section waste. Besides, while performing information updating, whether the captured section is of the latest version has to be checked again, so that data is moved repeatedly, and accordingly the system performance of the receiver platform is reduced.
A technique of “Method and device for providing downloaded object to an application” is disclosed in U.S. Pat. No. 7,003,783, wherein an application program interface is established for obtaining DSM-CC sections of the latest version in order to ensure that a user can always execute the application program of the latest version. However, this technique is only applicable to the DSM-CC portion of a transport stream but cannot provide other services, for example, service information (SI), of the latest version.
A technique of “Data transmission control method, data transmitting method, data transmitting apparatus, and receiving apparatus” is disclosed in U.S. Pat. No. 6,966,065, wherein whether or not the version of a DSM-CC section has been updated is determined through event transmission between a user and a server. However, this technique has a special specification and is not applicable to broadcasting telecommunication network, and besides, headend equipments compatible to the mechanism of this technique have to be used.
A technique of “Device and method for filtering added information” is provided by U.S. Pat. No. 6,877,017, wherein the device includes a memory, a comparison unit, and a section processing unit. The memory is used for storing table identification and the latest version number. The comparison unit is used for determining whether or not a section is conform to a filtering condition, namely, whether or not the table identification and the version number of the section are respectively the same as the table identification and the latest version number in the memory. The section processing unit is used for processing a section when the table identification and version number of the section are different from the table identification and the latest version number in the memory. This technique will be described in detail below.
FIG. 3 is a block diagram illustrating a method disclosed in U.S. Pat. No. 6,877,017 for filtering additional information. Referring to FIG. 3, first, in step S301, the beginning of a section is located in a MPEG-2 transport stream in order to obtain a section. Next, in step S302, whether or not the table identification of the section conforms to the table identification stored in the memory is determined. If so, steps S303 and S306 are executed; otherwise, if the table identification of the section does not conform to that recorded in the memory, step S304 is executed and the section is not processed. In step S306, whether or not the table to which the section belongs has been completed is determined. If so, the version number of the section is masked in step S307. In step S303, whether or not the version number of the section has been masked is determined. If so, step S304 is executed and the section is not processed. Otherwise, if the version number of the section is not masked, the section is processed in step S305.
However, in the technique described above, the user cannot choose a method for obtaining the section, and the user is not notified of resource changes and the state of sections. Besides, this technique provides information monitoring to MPEG-2 transport stream instead of MPEG-2 section, thus, application program interface conforming to DAVIC specification for filtering MPEG-2 section is not provided in this technique.